package com.tzl.design_pattern.factory_pattern.abstract_factory_pattern;

/**
 * 抽象工厂模式:<br>
 * 是指提供一个创建一系列相关或相互依赖对象的接口，无需指定他们具体的类．客户端（应用层）不依赖与产品类实例如何被创建，实现等细节，
 * 强调的是一系列相关的产品对象一起使用创建对象需要大量重复的代码．需要提供一个产品类的库，所有的产品 以同样的接口出现，从而使客户端不依赖与具体实现．
 *
 * @author Zhilei Tang
 * @date Created in 2020/11/14 16:25
 */
public class AbstractFactoryTest {
  public static void main(String[] args) {

    IFactory farmFactory = new SouthFarmFactory();
    farmFactory.createApple().growApple();
    farmFactory.createOrange().growOrange();

    farmFactory = new NorthFarmFactory();
    farmFactory.createApple().growApple();
    farmFactory.createOrange().growOrange();
  }
}
